Add: tests to CMakeLists.txt (#173)
authorAndreas-Schniertshauer <59561559+Andreas-Schniertshauer@users.noreply.github.com>
Wed, 19 Feb 2020 19:25:19 +0000 (20:25 +0100)
committerGitHub <noreply@github.com>
Wed, 19 Feb 2020 19:25:19 +0000 (14:25 -0500)
* Add: tests to CMakeLists.txt

* Disable compilation of charwidth, graphemetest and normtest because of missing getline

* Refactoring: UTF8PROC_ENABLE_TESTING default Off, move tests that don't compile on windows to NOT MSVC section, add testing to appveyor.yml

* Add: testing to travis

* Changed: flag to WIN32 because MinGW has the same problem as MSVC

* Commented out graphemetest and normtest because they fail.

* Re-added: graphemetest and normtest added missing data to the path of the text files.

* Fix: last commit was party wrong normtest failed.

* * Commented out graphemetest and normtest because they fail, because in CMakeLists is missing building of data.

.travis.yml
CMakeLists.txt
appveyor.yml

index 7393bc73db57f1d384c0843d6e724861924bbe37..5046448641baf70f84c41b702a2a4f451f8deb41 100644 (file)
@@ -11,5 +11,5 @@ script:
     - make check
     - make data && diff data/utf8proc_data.c.new utf8proc_data.c
     - make clean && git status --ignored --porcelain && test -z "$(git status --ignored --porcelain)"
-    - (mkdir build_static && cd build_static && cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON && make)
-    - (mkdir build_shared && cd build_shared && cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=ON && make)
+    - (mkdir build_static && cd build_static && cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DUTF8PROC_ENABLE_TESTING=On && make && ctest)
+    - (mkdir build_shared && cd build_shared && cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=ON -DUTF8PROC_ENABLE_TESTING=On && make && ctest)
index 7e8be206eb47293432bd80ddcc618b350bfe976f..2f5d2d4efd190b00a80d93e451db8b28d0c5ecef 100644 (file)
@@ -14,6 +14,7 @@ set(SO_MINOR 3)
 set(SO_PATCH 1)
 
 option(UTF8PROC_INSTALL "Enable installation of utf8proc" On)
+option(UTF8PROC_ENABLE_TESTING "Enable testing of utf8proc" Off)
 
 add_library (utf8proc
   utf8proc.c
@@ -59,3 +60,37 @@ if (UTF8PROC_INSTALL)
       "${PROJECT_SOURCE_DIR}/utf8proc.h"
     DESTINATION include)
 endif()
+
+if(UTF8PROC_ENABLE_TESTING)
+  enable_testing()
+  add_executable(case test/tests.h test/tests.c utf8proc.h test/case.c)
+  target_link_libraries(case utf8proc)
+  add_executable(custom test/tests.h test/tests.c utf8proc.h test/custom.c)
+  target_link_libraries(custom utf8proc)
+  add_executable(iterate test/tests.h test/tests.c utf8proc.h test/iterate.c)
+  target_link_libraries(iterate utf8proc)
+  add_executable(misc test/tests.h test/tests.c utf8proc.h test/misc.c)
+  target_link_libraries(misc utf8proc)
+  add_executable(printproperty test/tests.h test/tests.c utf8proc.h test/printproperty.c)
+  target_link_libraries(printproperty utf8proc)
+  add_executable(valid test/tests.h test/tests.c utf8proc.h test/valid.c)
+  target_link_libraries(valid utf8proc)
+  add_test(testcase case)
+  add_test(testcustom custom)
+  add_test(testiterate iterate)
+  add_test(testmisc misc)
+  add_test(testprintproperty printproperty)
+  add_test(testvalid valid)
+  if (NOT WIN32)
+    # Some test disabled, because they don't compile on Windows, missing getline, ...
+    add_executable(charwidth test/tests.h test/tests.c utf8proc.h test/charwidth.c)
+    target_link_libraries(charwidth utf8proc)
+    add_executable(graphemetest test/tests.h test/tests.c utf8proc.h test/graphemetest.c)
+    target_link_libraries(graphemetest utf8proc)
+    add_executable(normtest test/tests.h test/tests.c utf8proc.h test/normtest.c)
+    target_link_libraries(normtest utf8proc)
+    add_test(testcharwidth charwidth)
+    #add_test(testgraphemetest graphemetest data/GraphemeBreakTest.txt)
+    #add_test(testnormtest normtest data/NormalizationTest.txt)
+  endif()
+endif()
index 4e7aa622c98de87089f36637f37029d8a4f2eb38..7ac03b57cd236ecd99bee5b5c1d855fd94a2ca41 100644 (file)
@@ -16,23 +16,27 @@ build_script:
       throw "There are newer queued builds for this pull request, failing early." }
   - mkdir msvc_static
   - cd msvc_static
-  - cmake ..
+  - cmake .. -DUTF8PROC_ENABLE_TESTING=On
   - cmake --build .
+  - ctest
   - mkdir ..\msvc_shared
   - cd ..\msvc_shared
-  - cmake .. -DBUILD_SHARED_LIBS=ON
+  - cmake .. -DBUILD_SHARED_LIBS=ON -DUTF8PROC_ENABLE_TESTING=On
   - cmake --build .
+  - ctest
   - set PATH=C:\MinGW\bin;%PATH%
   - C:\MinGW\msys\1.0\bin\sh --login -c "
       cd /c/projects/utf8proc &&
       mkdir mingw_static &&
       cd mingw_static &&
-      cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -G'MSYS Makefiles' &&
+      cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DUTF8PROC_ENABLE_TESTING=On -G'MSYS Makefiles' &&
       make &&
+      ctest &&
       mkdir ../mingw_shared &&
       cd ../mingw_shared &&
-      cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=ON -G'MSYS Makefiles' &&
-      make
+      cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=ON -DUTF8PROC_ENABLE_TESTING=On -G'MSYS Makefiles' &&
+      make &&
+      ctest
       "
 
 on_finish: